#define  _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>

//回文结构
// 方法一：创建数组（取巧）

//struct ListNode {
//    int val;
//    struct ListNode *next;
//    ListNode(int x) : val(x), next(NULL) {}
//};
//#include <ios>
//class PalindromeList {
//public:
//    bool chkPalindrome(ListNode* A) {
//        // write code here
//        int arr[900] = { 0 };
//        int right = 0;
//        ListNode* phead = A;
//        while (phead)
//        {
//            arr[right++] = phead->val;
//            phead = phead->next;
//        }
//        int left = 0;
//        while (left < (right - 1))
//        {
//            if (arr[left] == arr[right - 1])
//            {
//                left++;
//                right--;
//            }
//            else {
//                return false;
//            }
//        }
//        return true;
//
//    }
//};
//方法二：,找中间节点，反转链表，最后找
/*
struct ListNode {
    int val;
    struct ListNode *next;
    ListNode(int x) : val(x), next(NULL) {}
};*/
//class PalindromeList {
//public:
//    bool chkPalindrome(ListNode* A) {
//        // write code here
//        //找到中间节点
//        ListNode* slow = A;
//        ListNode* fast = A;
//        while (fast && fast->next)
//        {
//            slow = slow->next;
//            fast = fast->next->next;
//        }
//        //反转中间节点之后的链表
//        ListNode* n1 = NULL;
//        ListNode* n2 = slow;
//        ListNode* n3 = slow->next;
//        while (n2)
//        {
//            n2->next = n1;
//            n1 = n2;
//            n2 = n3;
//            if (n3 != NULL)
//            {
//                n3 = n3->next;
//            }
//        }
//        //比较
//        ListNode* head1 = A;
//        ListNode* head2 = n1;
//        while (head2)
//        {
//            if (head1->val == head2->val)
//            {
//                head1 = head1->next;
//                head2 = head2->next;
//            }
//            else {
//                return false;
//            }
//        }
//        return true;
//
//    }
//};
//相交链表
int main()
{
    //判断相交 ，节点相同，先补差，再将链表统一
}